#ifndef __DRV_JIFFES_H__
#define __DRV_JIFFES_H__

#include "app_config.h"
#include "config.h"


/**
 *  1小时=3600S 
 *  1天=86400S
 *  1月=2592000S
 *  1年 =31536000 S
 *  10年=315360000 S
 *  uint32t 0~4294967295
 *  4294967295/31536000 = 136.192年
 *  
 *  jiffes_t 分为s秒数和ms毫秒数
 *  s:最大增加到136年
 *  ms:最大1000, 大于1000归零从新计数同时s增加1
 * 
*/
typedef struct jiffes_t {
    uint32 s;   /* 秒 */
    uint32 ms;  /* 毫秒 */
}jiffes_t;


jiffes_t* jiffes_handler(void);

void jiffes_reset(void);

void jiffes_get(jiffes_t* j);

void jiffes_zero(jiffes_t* j);

void jiffes_add_ms(jiffes_t* j, uint32 ms);

void jiffes_now_add_ms(jiffes_t* j, uint32 ms);

int8 jiffes_compare_now(jiffes_t* j);

int8 jiffes_compare(jiffes_t* ja, jiffes_t* jb);

int32 jiffes_diff_now(jiffes_t *j);

void drv_jiffes_config(void);


#endif